A content distribution network (CDN) is a system of computers networked together across the Internet that cooperate to deliver digital data in the form of content (such as large media content including videos and audio files) to end users. Examples of such prior art content based CDNs include Sandpiper, Skycache, Digital Island and Akamai.
The number of content servers in prior art CDNs varies and depends on the architecture of the CDN. Some of the CDNs have thousands of nodes with tens of thousands of content servers. When an end a user wishes to download content from the CDN, content requests for an item of digital data are sent to the CDN from the end user. These content requests are directed to the one of the CDN content servers that can provide the best service to the end user.
Content providers use the services of operators of CDNs to distribute their content to the end users. The content is distributed by enabling the end user to download the item of digital data desired from the CDN. Using a reporting and billing system the CDN operator then provides a report to the content owner about the delivery of the item of digital data and bills the content owner on the basis of that report for the use of the service.
Recently a new generation of CDNs has emerged which employ a Peer-to-Peer (P2P) architecture and allow the download of the items of data from “multiple data sources”. Operators of CDNs using such P2P architecture are no longer required to maintain large farms of expensive, high performance content servers to distribute the data. Rather a few such content servers in combination with web caches and peers or a combination of these data sources are used to supply the end user with content
An example for the CDN is disclosed in the applicant's co-pending patent applications, UK Patent Application No. GB061596.3 (& U.S. patent application Ser. No. 11/598,115) and UK Patent Application No. GB0615962.8 (& U.S. patent application Ser. No. 11/598,114).
An example of a prior art CDN for the distribution of items of digital data is the system run by Akamai Technologies. Details of the prior art CDN are to be found at the following website http://www.akamai.com/html/solutions/media_delivery.html, downloaded on 13 Jul. 2007. Akamai's CDN uses a single content server for the provision of the item of digital data. The Akamai reporting and billing system collects event logs for the download of the item of digital data. The reporting and the billing are simply based on the transmission of the item of digital data to the end user from the single content server in a single session and the bill is issued relating to the use of bandwidth.
In the CDN of the application the download of the item of digital data can be realized by one or more sessions. During different ones of the sessions different portions of the item of digital data are downloaded from different ones of the multiple data sources.
The term “multiple data sources” means in this context data sources on which the portions of the item of digital data are stored. The multiple data sources may be conventional content servers, web caches or peers or a combination of any of these data sources. It is irrelevant how the portions are distributed across the data sources. The download of the item of digital data from the multiple data sources can be affected by selecting in different sessions arbitrary portions from arbitrary ones of the multiple data sources. The download of the item of digital data may contain breaks between different ones of the sessions. For example, the download of the item of digital data to a laptop by the end user may be interrupted when the laptop is turned off or is disconnected from the Internet.
There is a need in the CDNs having multiple data sources to compile and issue correct reports and invoices about the delivery of the item of digital data. More particularly, in the CDN, an operator needs to bill for completion of the download of the item of digital data and to report to the content owners how and whether the download of the item of digital data has been completed and whether any problems during the download of the item of digital data have been encountered. Billing and reporting in the CDN needs to be based on how and whether or not a download has been concluded. Relying on the mere transmission of the item of digital data is not sufficiently accurate. More particularly, the billing and reporting in the CDN needs to be based on how and whether or not the end user has indeed received all the portions of the item of digital data.
One solution might, of course, be to bill on the download of every individual portion of the digital data from a cache or content server. However, the pricing model for the download of the item of digital data may have changed during the download and this could not be reflected in the pricing. Furthermore, it is possible that some of the portions are downloaded twice from different ones of the data sources and should only be invoiced once. It is also possible that much (or even all) of the digital data is downloaded from peers in the P2P network and therefore only a smaller bill would be issued.
There is therefore a further need in CDNs employing multiple data sources to establish which ones of the one or more sessions taken together conclude the complete download of the item of digital data.
It is possible that in the CDN one of the multiple data sources, such as the content server, may not have passed all of the portions of the digital data to the end user. Currently, the content server and any billing and reporting system takes into account messages from the peers informing whether all portions of the digital data have been passed to the end user.
These and other problems of prior art CDNs are addressed by the invention.